package cn.tedu.test.luban.demo.selector;

import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ImportSelector;
import org.springframework.core.io.support.SpringFactoriesLoader;
import org.springframework.core.type.AnnotationMetadata;

public class MySelector implements ImportSelector {
    /**
     * selectImports 选择所导入的配置类的 全路径名称
     * @param importingClassMetadata 选择器的环境 可以利用环境对象做一些逻辑判断
     *                               比如 导入的配置类是否存在某个注解 某个类型泛型等
     * @return String[] 每一个元素 都代表一个配置类全路径名称
     */
    @Override
    public String[] selectImports(AnnotationMetadata importingClassMetadata) {
        //SpringFactoriesLoader.loadFactoryNames(EnableAutoConfiguration)
        String configResource="cn.tedu.test.luban.demo.config.MyConfiguration02";
        String[] result=new String[1];
        result[0]=configResource;
        //TODO 如果成功的导入了 字符串数据中的配置类,完全可以将字符串的配置放到外界文件里
        return result;
    }
}
